package com.example.demo.service;

import com.example.demo.entity.AfshopSearchHistory;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 搜索历史表 服务类
 * </p>
 *
 * @author Mr.力铉器
 * @since 2024-06-26
 * AfshopSearchHistoryService接口
 * 该接口用于查询和管理AfshopSearchHistory对象，包括单个查询、列表查询和查询总数。
 */
public interface IAfshopSearchHistoryService extends IService<AfshopSearchHistory> {
    /**
     * 根据ID查询搜索历史对象
     *
     * @param id 搜索历史的唯一标识ID
     * @return 返回匹配ID的AfshopSearchHistory对象，如果找不到，则返回null
     */
    AfshopSearchHistory queryObject(Integer id);

    /**
     * 根据条件查询搜索历史列表
     *
     * @param map 包含查询条件的Map对象，键值对形式指定查询参数
     * @return 返回符合条件的搜索历史列表，如果无匹配项，则返回空列表
     */
    List<AfshopSearchHistory> queryList(Map<String, Object> map);

    /**
     * 根据条件查询搜索历史的总数
     *
     * @param map 包含查询条件的Map对象，用于统计满足条件的搜索历史总数
     * @return 返回满足条件的搜索历史总数
     */
    int queryTotal(Map<String, Object> map);
    /**
     * 根据用户ID删除相关数据。
     * 本方法旨在通过指定的用户ID，从数据库或其他数据存储中删除与该用户相关的信息。
     * 这可能是为了响应用户的删除请求，或作为数据清理过程的一部分。
     * @param userId 需要被删除的用户的数据所对应的用户ID。
     *               用户ID作为唯一标识符，用于准确地定位到需要删除的数据。
     *               如果userId为null或无效，则可能导致删除操作失败或无操作。
     */
    void deleteByUserId(Long userId);

}

